home *** CD-ROM | disk | FTP | other *** search
/ Shareware Grab Bag / Shareware Grab Bag.iso / 010 / games.arc / STARLANE.BAS (.txt) < prev    next >
Encoding:
GW-BASIC  |  1980-01-01  |  14.7 KB  |  246 lines

  1. 1000  GOTO 4320: REM GO SETUP GAME
  2. 1020  '                                                                                                                                                           --- MAIN PROGRAM LOOP ---
  3. 1040  K=K+1:IF K = 48 THEN 4120
  4. 1060  P=P+1: IF P=P1+1 THEN P=1
  5. 1080  FOR I=1 TO 5
  6. 1100  R(I)=INT(9*RND(1)+1): C(I)=INT(12*RND(1)+1)
  7. 1120  FOR I1= I-1 TO 0 STEP -1: IF R(I)=R(I1) AND C(I)=C(I1) THEN 1100
  8. 1140  NEXT I1: IF M(R(I),C(I))>1 THEN 1100
  9. 1160  FOR I1 = 1 TO 5: IF Q(I1)=0 THEN 1420
  10. 1180  NEXT I1: IF M(R(I),C(I)+1)>3 OR M(R(I),C(I)-1)>3 THEN 1420
  11. 1200  IF M(R(I)+1,C(I))>3 OR M(R(I)-1,C(I))>3 THEN 1420
  12. 1220  A1 = M(R(I),C(I)+1): A2 = M(R(I),C(I)-1)
  13. 1240  A3 = M(R(I)+1,C(I)): A4 = M(R(I)-1,C(I))
  14. 1260  IF A1 = 2 AND A2 < 4 AND A3 < 4 AND A4 < 4 THEN 1100
  15. 1280  IF A2 = 2 AND A1 < 4 AND A3 < 4 AND A4 < 4 THEN 1100
  16. 1300  IF A3 = 2 AND A1 < 4 AND A2 < 4 AND A4 < 4 THEN 1100
  17. 1320  IF A4 = 2 AND A1 < 4 AND A2 < 4 AND A3 < 4 THEN 1100
  18. 1340  IF A1 = 3 AND A2 < 4 AND A3 < 4 AND A4 < 4 THEN 1100
  19. 1360  IF A2 = 3 AND A1 < 4 AND A3 < 4 AND A4 < 4 THEN 1100
  20. 1380  IF A3 = 3 AND A1 < 4 AND A2 < 4 AND A4 < 4 THEN 1100
  21. 1400  IF A4 = 3 AND A1 < 4 AND A2 < 4 AND A3 < 4 THEN 1100
  22. 1420  NEXT I: GOSUB 2560: PRINT
  23. 1440  GOSUB 3960: LOCATE 21,1 : PRINT P$(P) ", your legal moves are:"
  24. 1460  FOR XX=1 TO 5: PRINT R(XX) MID$(M$,C(XX),1) " / ";: NEXT XX: PRINT
  25. 1480  PRINT "What's your move ";: GOSUB 5240: R$=REPLY$
  26. 1500  IF LEFT$(R$,1)="M" THEN GOSUB 2560: GOTO 1440: REM DISPLAY MAP
  27. 1520  IF LEFT$(R$,1)="S" THEN GOSUB 3800: GOTO 1440: REM DISPLAY STOCK
  28. 1540  IF (LEFT$(R$,1)="") THEN GOTO 1440
  29. 1560  R=VAL(LEFT$(R$,1))
  30. 1580  C= ASC(RIGHT$(R$,1))-64: FOR I=1 TO 5: IF R = R(I) AND C=C(I) THEN 1640
  31. 1600  NEXT I: GOSUB 3960: LOCATE 21,1: PRINT CHR$(7) "That space was not on the list...": FOR XX=1 TO 1500: NEXT XX: GOTO 1440
  32. 1620  '                                                                                                                                                          --- CHECK FOR MERGER ---
  33. 1640  A1=M(R-1,C): A2=M(R+1,C): A3=M(R,C+1): A4=M(R,C-1)
  34. 1660  IF A1<=1 AND A2 <= 1 AND A3 <= 1 AND A4 <= 1 THEN M(R,C)=2: GOTO 2240
  35. 1680  IF A1>3 AND A2>3 AND A2<>A1 THEN GOSUB 2780
  36. 1700  IF A1>3 AND A3>3 AND A3<>A1 THEN GOSUB 2780
  37. 1720  IF A1>3 AND A4>3 AND A1<>A4 THEN GOSUB 2780
  38. 1740  IF A2>3 AND A3>3 AND A2<>A3 THEN GOSUB 2780
  39. 1760  IF A2>3 AND A4>3 AND A2<>A4 THEN GOSUB 2780
  40. 1780  IF A3>3 AND A4>3 AND A3<>A4 THEN GOSUB 2780
  41. 1800  IF A1<4 AND A2<4 AND A3<4 AND A4<4 THEN 1940
  42. 1820  IF M(R,C)>3 THEN 2240
  43. 1840  IF A1>3 THEN I = A1-3
  44. 1860  IF A2>3 THEN I = A2-3
  45. 1880  IF A3>3 THEN I = A3-3
  46. 1900  IF A4>3 THEN I = A4-3
  47. 1920  Q(I) = Q(I)+1: S1(I) = S1(I)+100: M(R,C)=I+3:GOTO 2040
  48. 1940  FOR I=1 TO 5:IF Q(I)=0 THEN 1980
  49. 1960  NEXT I: IF M(R,C) < 3 THEN M(R,C) = 2: GOTO 2240
  50. 1980  GOSUB 4040:V=7: CT$= "A NEW SHIPPING COMPANY HAS BEEN FORMED!" :GOSUB 5040
  51. 2000  V=9: CT$= "It's name is "+M$(I): GOSUB 5040: S(I,P)=S(I,P)+5:Q(I)=1
  52. 2020  PRINT:PRINT:PRINT:PRINT:PRINT
  53. 2040  IF A1=3 THEN S1(I)=S1(I)+500
  54. 2060  IF A2=3 THEN S1(I)=S1(I)+500
  55. 2080  IF A3=3 THEN S1(I)=S1(I)+500
  56. 2100  IF A4=3 THEN S1(I)=S1(I)+500
  57. 2120  IF A1=2 THEN S1(I)=S1(I)+100: Q(I) = Q(I)+1: M(R-1,C)=I+3
  58. 2140  IF A2=2 THEN S1(I)=S1(I)+100: Q(I) = Q(I)+1: M(R+1,C)=I+3
  59. 2160  IF A3=2 THEN S1(I)=S1(I)+100: Q(I) = Q(I)+1: M(R,C+1)=I+3
  60. 2180  IF A4=2 THEN S1(I)=S1(I)+100: Q(I) = Q(I)+1: M(R,C-1)=I+3
  61. 2200  IF S1(I) >=3000 THEN T1=I: GOSUB 3700
  62. 2220  M(R,C) = I+3
  63. 2240  FOR I=1 TO 5: B(P)=B(P)+INT(0.05*S(I,P)*S1(I)): NEXT I
  64. 2260  '                                                                                                                                                          --- PURCHASE STOCK ---
  65. 2280  FOR I=1 TO 5: IF Q(I) = 0 THEN 2520
  66. 2300  IF B(P) < S1(I) THEN 2520
  67. 2320  GOSUB 3960: LOCATE 21,1 :PRINT P$(P) ", you have $" B(P) "."
  68. 2340  PRINT "How many shares of " M$(I)
  69. 2360  PRINT "  do you want to buy at $" S1(I);
  70. 2380  GOSUB 5240: R3$=REPLY$: IF LEFT$(R3$,1)="M" THEN GOSUB 2560: GOTO 2320
  71. 2400  IF LEFT$(R3$,1)="S" THEN GOSUB 3800: GOTO 2320
  72. 2420  R3=VAL(R3$):R3$=""
  73. 2440  IF R3*S1(I) <= B(P) THEN 2480
  74. 2460  GOSUB 3960: LOCATE 21,1 :PRINT CHR$(7) "You only have $" B(P) "-try again.":FOR ZZ=1 TO 1500: NEXT ZZ: GOTO 2320
  75. 2480  IF R3=0 THEN 2520
  76. 2500  S(I,P) = S(I,P)+R3: B(P) = B(P) -(R3*S1(I))
  77. 2520  NEXT I: GOTO 1040
  78. 2540  '                                                                                                                                                           --- DISPLAY GALAXY MAP ---
  79. 2560  CLS
  80. 2580  LOCATE 1,OFFSET: PRINT " *********** MAP OF GALAXY ***********"
  81. 2600  LOCATE 2,OFFSET: PRINT "    A  B  C  D  E  F  G  H  I  J  K  L"
  82. 2620  FOR R2=1 TO 9
  83. 2640    CV=R2+R2+1: LOCATE CV,OFFSET: PRINT R2;
  84. 2660    FOR C2=1 TO 12
  85. 2680      PRINT " " MID$(L$,M(R2,C2),1) " ";
  86. 2700    NEXT C2
  87. 2720  NEXT R2
  88. 2740  RETURN
  89. 2760  '                                                                                                                                                          --- MERGE COMPANIES ---
  90. 2780  F1=A1-3:IF F1<0 THEN F1=0
  91. 2800  F2=A2-3:IF F2<0 THEN F2=0
  92. 2820  F3=A3-3:IF F3<0 THEN F3=0
  93. 2840  F4=A4-3:IF F4<0 THEN F4=0
  94. 2860  T=Q(F1): T1=F1: IF Q(F2) > Q(F1) THEN T=Q(F2): T1=F2
  95. 2880  IF Q(F3) >T THEN T=Q(F3):T1=F3
  96. 2900  IF Q(F4) > T THEN T=Q(F4): T1=F4
  97. 2920  IF F1=T1 OR A1<4 THEN 2960
  98. 2940  X=F1: GOSUB 3200
  99. 2960  IF F2=T1 OR A2<4 THEN 3000
  100. 2980  X=F2: GOSUB 3200
  101. 3000  IF F3=T1 OR A3<4 THEN 3040
  102. 3020  X=F3: GOSUB 3200
  103. 3040  IF F4=T1 OR A4<4 THEN 3080
  104. 3060  X=F4: GOSUB 3200
  105. 3080  IF A1=2 THEN M(R-1,C)=M(R,C)
  106. 3100  IF A2=2 THEN M(R+1,C)=M(R,C)
  107. 3120  IF A3=2 THEN M(R,C+1)=M(R,C)
  108. 3140  IF A4=2 THEN M(R,C-1)=M(R,C)
  109. 3160  RETURN
  110. 3180  '                                                                                                                                                          --- DISPLAY MERGER INFO ---
  111. 3200  GOSUB 4040: PRINT M$(X) " and":PRINT M$(T1) " have just merged.":PRINT
  112. 3220  PRINT "Please note the following transactions."
  113. 3240  PRINT: PRINT TAB(4) "Old Stock = " M$(X): PRINT TAB(4) "New Stock = " M$(T1): PRINT
  114. 3260  PRINT TAB(9);"OLD"; TAB(16); "NEW"; TAB(24) "TOTAL"; TAB(32) "BONUS"
  115. 3280  PRINT "PLAYER"; TAB(8);"STOCK"; TAB(15); "STOCK";TAB(23);"HOLDINGS";TAB(32);"PAID"
  116. 3300  PRINT STRING$(39,"-"): FOR I=1 TO P1: PRINT LEFT$(P$(I),8); TAB(9);S(X,I); TAB(16);INT((0.5*S(X,I))+0.5);
  117. 3320  PRINT TAB(24) S(T1,I) + INT ((0.5*S(X,I))+0.5);
  118. 3340  X1=0: FOR I1 = 1 TO P1 : X1=X1+S(X,I1) : NEXT I1
  119. 3360  PRINT TAB(30) "$" INT(10*((S(X,I)/X1)*S1(X))): NEXT I
  120. 3380  FOR I=1 TO P1 : S(T1,I)=S(T1,I) + INT ((0.5*S(X,I))+0.5)
  121. 3400  B(I) = B(I)+ INT(10*((S(X,I)/X1)*S1(X))): NEXT I
  122. 3420  FOR I = 1 TO 9: FOR J = 1 TO 12: IF M(I,J) = X+3 THEN M(I,J) = T1+3
  123. 3440  NEXT J,I
  124. 3460  A1=M(R-1,C): A2=M(R+1,C): A3 = M(R,C+1): A4 = M(R,C-1)
  125. 3480  F1=A1-3:IF F1<0 THEN F1 = 0
  126. 3500  F2=A2-3:IF F2<0 THEN F2 = 0
  127. 3520  Q(T1)=Q(T1)+Q(X):S1(T1) = S1(T1)+ S1(X): IF S1(T1) <= 3000 THEN 3580
  128. 3540  FOR XX= 0 TO 1000:NEXT XX
  129. 3560  GOSUB 3700
  130. 3580  F3=A3-3: IF F3<0 THEN F3=0
  131. 3600  F4=A4-3: IF F4<0 THEN F4=0
  132. 3620  S1(X) = 100: Q(X) = 0: FOR I=1 TO P1: S(X,I) = 0: NEXT I
  133. 3640  M(R,C)=T1+3
  134. 3660  RETURN
  135. 3680  '                                                                                                                                                          --- STOCK SPLIT ---
  136. 3700  GOSUB 4040: PRINT "The stock of ";M$(T1);" has split 2 for 1!!":S1(T1)=INT(S1(T1)/2)
  137. 3720  PRINT:PRINT:PRINT:PRINT:PRINT
  138. 3740  FOR I1=1 TO P1: S(T1,I1) = 2* S(T1,I1): NEXT I1
  139. 3760  RETURN
  140. 3780  '                                                                                                                                                          --- DISPLAY STOCK HOLDINGS ---
  141. 3800  CLS: PRINT
  142. 3820  PRINT TAB(24) "SHARE"
  143. 3840  PRINT " COMPANY NAME" TAB(24) "PRICE" TAB(32) "HOLDINGS"
  144. 3860  PRINT STRING$(39,"="): PRINT
  145. 3880  FOR I3=1 TO 5: IF S1(I3) = 100 THEN 3920
  146. 3900  PRINT M$(I3) TAB(24) S1(I3) TAB(34) S(I3,P): PRINT
  147. 3920  NEXT I3:RETURN
  148. 3940  '                                                                                                                                                          --- CLEAR PROMPT AREA ---
  149. 3960  CV = CSRLIN : CH = POS(0)
  150. 3980  LOCATE 21,1: PRINT BL$ BL$ BL$;
  151. 4000  LOCATE CV,CH : RETURN
  152. 4020  '                                                                                                                                                          --- SPECIAL ANNOUNCEMENT ---
  153. 4040  FOR XX=0 TO 1000: NEXT XX: CLS
  154. 4060  PRINT CHR$(7): LOCATE 20,OFFSET+9: PRINT "SPECIAL ANNOUNCEMENT!!": FOR XX=1 TO 18: PRINT STRING$(39," "): NEXT XX: LOCATE 7,1
  155. 4080  RETURN
  156. 4100  '                                                                                                                                                          --- END OF GAME DISPLAY ---
  157. 4120  GOSUB 4040: V=7: CT$="The game is over.": GOSUB 5040: V=8: CT$="Here are the final standings...": GOSUB 5040: PRINT
  158. 4140  GOSUB 4180: PRINT: PRINT TAB(OFFSET) "Another Game (Y/N) ";: GOSUB 5240: IF LEFT$(REPLY$,1)="Y" THEN RUN
  159. 4160  V=CSRLIN-1: CT$="- - - T H E  E N D - - -": GOSUB 5040: LOCATE 22,1: END
  160. 4180  PRINT: PRINT TAB(11+OFFSET) "VALUE" TAB(21+OFFSET)  "CASH"
  161. 4200  LOCATE ,OFFSET: PRINT " PLAYER" TAB(10+OFFSET) "OF STOCK" TAB(20+OFFSET) "ON HAND" TAB(29+OFFSET) "NET WORTH"
  162. 4220  LOCATE ,OFFSET: PRINT STRING$(39,"-")
  163. 4240  FOR I=1 TO P1: D1(I)=0: FOR J= 1 TO 5: D1(I)=D1(I)+(S1(J)*S(J,I)): NEXT J,I
  164. 4260  FOR I=1 TO P1:LOCATE ,OFFSET: PRINT LEFT$(P$(I),9) TAB(10+OFFSET) D1(I) TAB(20+OFFSET) B(I) TAB(29+OFFSET) D1(I)+B(I): NEXT I: RETURN
  165. 4280  '                                                                                                                                                          ********* START GAME INITIALIZATION *********
  166. 4300  '                                                                                                                                                          --- TEST FOR COLOR OR MONO DISPLAY ---
  167. 4320  DEF SEG=&HB000: POKE &H0,&H20: POKE &H8000,&H20:REM POKE VALUE TO SEE IF CARD IS THERE
  168. 4340  IF PEEK(&H8000) = &H20 AND PEEK(&H0) <> &H20 THEN GOSUB 5140: GOTO 4440:REM COLOR ONLY
  169. 4360  IF PEEK(&H0) = &H20 AND PEEK(&H8000) <> &H20 THEN GOSUB 5180: GOTO 4440:REM MONO ONLY
  170. 4380  GOSUB 5140: GOSUB 5180: V=6: CT$="WOW !!!": GOSUB 5040: V=8: CT$="You have both COLOR and MONOCHROME displays.": GOSUB 5040: V=10: CT$="Which one should I use ?": GOSUB 5040: V=12: CT$="(C or M) ": GOSUB 5040
  171. 4400  INPUT "",REPLY$: CLS: IF LEFT$(REPLY$,1)="C" OR LEFT$(REPLY$,1)="c" THEN GOSUB 5140: REM USE COLOR
  172. 4420  '                                                                                                                                                          --- DISPLAY BANNER ---
  173. 4440  V=3: CT$="* S T A R  L A N E S *": GOSUB 5040
  174. 4460  V=5: CT$="THE GAME": GOSUB 5040
  175. 4480  V=7: CT$="OF": GOSUB 5040
  176. 4500  V=9: CT$="INTERSTELLAR TRADING ": GOSUB 5040
  177. 4520  '                                                                                                                                                          --- SEED RANDOM NUMBER GENERATOR ---
  178. 4540  V=15: CT$="PLEASE PRESS THE SPACE BAR": GOSUB 5040: V=16: CT$="TO SEED THE": GOSUB 5040: V=17: CT$="RANDOM NUMBER GENERATOR": GOSUB 5040
  179. 4560  X=INT(RND(1) * 32767): LOCATE 19,OFFSET+15: PRINT X;: X$=INKEY$: IF X$ <> CHR$(32) THEN GOTO 4560
  180. 4580  RANDOMIZE X
  181. 4600  '                                                                                                                                                          --- SETUP VARIABLES ---
  182. 4620  DIM M(10,13),S(5,4)
  183. 4640  ZERO=0: ONE=1: TWO=2: THREE=3: FOUR=4: FIVE=5: SIX=6: SEVEN=7: EIGHT=8: NINE=9: TEN=10: ELEVEN=11: TWELVE=12
  184. 4660  FOR I=1 TO 5: FOR J=1 TO 4: S(I,J)=0: D1(I)=0: S1(I)=100: Q(I)=0: B(I)=6000: NEXT J,I
  185. 4680  M$(1)="ALTAIR STARWAYS": M$(2)="BETELGEUSE LTD": M$(3)="CAPELLA FREIGHT": M$(4)="DENEBOLA SHIPPERS": M$(5)="ERIDIAN EXPENDITURES"
  186. 4700  L$=".+*ABCDE": M$="ABCDEFGHIJKL"
  187. 4720  CLS: V=3: CT$="P C": GOSUB 5040: V=5: CT$="* S T A R  L A N E S *": GOSUB 5040: V=7: CT$="VERSION 1.0": GOSUB 5040
  188. 4740  FOR I=1 TO 9: FOR J=1 TO 12
  189. 4760  IF INT(RND(1)*20)+1<>10 THEN M(I,J)=1: GOTO 4800
  190. 4780  M(I,J)=3
  191. 4800  NEXT J,I
  192. 4820  '                                                                                                                                                          --- GET PLAYER INFORMATION ---
  193. 4840  V=10: CT$="Instructions (Y/N) ": GOSUB 5040: GOSUB 5220
  194. 4860  IF LEFT$(REPLY$,1)="Y" THEN GOSUB 5460: GOTO 4720
  195. 4880  V=10: CT$="How many players (2-4) ": GOSUB 5040: GOSUB 5220
  196. 4900  P1=VAL(REPLY$): IF P1<2 OR P1>4 THEN GOTO 4880
  197. 4920  LOCATE 10,1: PRINT BL$: LOCATE 10,1: FOR I=1 TO P1: PRINT "Player" I "what is your name";: INPUT P$(I): NEXT I
  198. 4940  'FOR I=1 TO P1: IF LEN(P$(I)) > 7 THEN P$(I)=LEFT$(P$(I),7): NEXT I
  199. 4960  PRINT: PRINT"Now I will decide who goes first...": FOR XX=1 TO 1000: NEXT XX
  200. 4980  PRINT "Hmmmm... let me see now.": I=INT(P1*RND(1)+1): FOR XX=1 TO 1500: NEXT  XX
  201. 5000  PRINT "OK. I've decided...": FOR XX=1 TO 1000: NEXT XX: PRINT P$(I) " goes first.": FOR XX=1 TO 2000: NEXT XX
  202. 5020  CLS: K=0: P=I: GOTO 1080: REM WE ARE ALL SET. START GAME.
  203. 5040  '                                                                                                                                                          --- PRINT CENTERING ROUTINE ---
  204. 5060  LOCATE V,1: PRINT BL$;
  205. 5080  LOCATE V,(OFFSET+19)-LEN(CT$)/2
  206. 5100  PRINT CT$;
  207. 5120  RETURN
  208. 5140  '                                                                                                                                                          --- SWITCH TO COLOR DISPLAY ---
  209. 5160  KEY OFF: CLS: LOCATE ,,0: DEF SEG=0: POKE &H410,(PEEK(&H410) AND &HCF) OR &H10: SCREEN 0,1,0,0: WIDTH 40: COLOR 15,1,1: CLS: OFFSET=1: BL$=SPACE$(39): LOCATE 1,1,0,6,7: RETURN
  210. 5180  '                                                                                                                                                          --- SWITCH TO MONOCHROME DISPLAY ---
  211. 5200  KEY OFF: CLS: LOCATE ,,0: DEF SEG=0: POKE &H410,PEEK(&H410) OR &H30: SCREEN 0: WIDTH 80: COLOR 7,0: CLS: OFFSET=21: BL$=SPACE$(79): LOCATE 1,1,0,12,13: RETURN
  212. 5220  '                                                                                                                                                          --- GET USER REPLY ---
  213. 5240  INPUT REPLY$
  214. 5260  FOR RI=1 TO LEN(REPLY$)
  215. 5280   RA=ASC(MID$(REPLY$,RI,1))
  216. 5300   IF RA>96 AND RA<123 THEN MID$(REPLY$,RI,1)=CHR$(RA-32)
  217. 5320  NEXT RI
  218. 5340  RETURN
  219. 5360  '                                                                                                                                                          --- CONTINUE ? ---
  220. 5380  LOCATE 22,1: GOSUB 3960: V=CSRLIN: CT$="Press Space Bar to continue": GOSUB 5040
  221. 5400  REPLY$=INKEY$: IF REPLY$ <> CHR$(32) THEN GOTO 5400
  222. 5420  LOCATE CSRLIN-1: PRINT BL$: RETURN
  223. 5440  '                                                                                                                                                          --- DISPLAY INSTRUCTIONS ---
  224. 5460  V=10: CT$=" by": GOSUB 5040
  225. 5480  V=CSRLIN+2: CT$="John Bernauer": GOSUB 5040: V=CSRLIN+2: CT$="Malcom  Higgins": GOSUB 5040: V=CSRLIN+2: CT$="Brian Irvine": GOSUB 5040
  226. 5500  GOSUB 5380: CLS
  227. 5520  CLS
  228. 5540  A$="  STAR LANES is a game of interstellar trading.": GOSUB 5780
  229. 5560  A$="The object of the game is to amass more money than your fellow players by establishing vast interstellar shipping lanes and obtaining stock in the companies that control these lanes.": GOSUB 5780
  230. 5580  PRINT: PRINT: A$="  During the game, players will be shown a map of the galaxy, and be given a choice of five `space coordinates' which they may occupy.": GOSUB 5780
  231. 5600  A$="Occupation of a coordinate causes one of four things to happen, formation of an Outpost, formation of a new Shipping Company, merger of two Companies, or growth of an existing Company.": GOSUB 5780
  232. 5620  PRINT: PRINT: A$="NEW OUTPOST - If the player selects a coordinate in the middle of nowhere, an Outpost will be formed. The Outpost will be marked with a `+'.": GOSUB 5780
  233. 5640  PRINT: PRINT: A$="NEW SHIPPING COMPANY - If the player selects a coordinate adjacent to an Outpost or a Star, a new Company will be formed. The player will receive five free shares of stock in the new Company.": GOSUB 5780
  234. 5660  PRINT: PRINT: A$="MERGER - If the player selects a coordinate between two different Companies, the two Companies will merge. Any stock held in the old Company will be converted into shares in the new Company.": GOSUB 5780
  235. 5680  PRINT: PRINT: A$="GROWTH - If the player selects a coordinate next to an existing Company, the Company will absorb the coordinate and the value of it's stock will increase.": GOSUB 5780
  236. 5700  PRINT: PRINT: A$="  After selecting a coordinate, the player will be allowed to purchase stock in any of the existing Trading Companies.": GOSUB 5780
  237. 5720  PRINT: PRINT: A$="  At any time, a player may enter either `S' to see his Stock portfolio, or `M' to see the Map of the galaxy.": GOSUB 5780
  238. 5740  GOSUB 5380: RETURN
  239. 5760  '                                                                                                                                                           --- FORMAT 40/80 CHAR TEXT ---
  240. 5780  Z=1: A$=" " + A$ + " "
  241. 5800  FOR X=1 TO LEN(A$)
  242. 5820  IF MID$(A$,X,1) <> " " THEN GOTO 5860
  243. 5840  PRINT MID$(A$,Z,X-Z);: Z=X
  244. 5860  NEXT: IF CSRLIN > 16 THEN GOSUB 5380: CLS
  245. 5880  RETURN
  246.